package com.sikaryofficial.backend.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.sikaryofficial.system.api.model.att.AttachmentResp;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 举报对象 user_report_t
 * 
 * @author qinjinyuan
 * @date 2023-11-08
 */
@Getter
@Setter
@ToString
@TableName(value = "user_report_t", autoResultMap = true)
@NoArgsConstructor
@AllArgsConstructor
public class UserReport implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 举报ID */
    @TableId(type = IdType.ASSIGN_ID)
    private Long reportId;

    /** 举报编号 */
    private String reportNum;

    /** 举报状态：1-accepting受理中,2-accepted已受理 */
    private Integer reportStatus;

    /** 举报关联对象ID */
    private Long relationId;

    /** 举报类型：1-淫秽色情,2-营销广告,3-网络暴力,4-违法信息,5-虚假谣言,6-诈骗内容,7-恐怖主义内容,8-侵犯版权内容,9-仇恨言论,10-骚扰、欺凌和威胁,11-违法内容,12-涉及儿童安全,13-其他不良内容 */
    private Integer reportType;

    /** 业务类型：1-店铺,2-评论,3-评论回复 */
    private Integer businessType;

    /**
     * 商品图片
     */
    @TableField(typeHandler = FastjsonTypeHandler.class, value = "product_image")
    private List<AttachmentResp> productImage;

    /**
     * 店铺图片
     */
    @TableField(typeHandler = FastjsonTypeHandler.class, value = "store_image")
    private List<AttachmentResp> storeImage;

    /**
     * 店铺名称
     */
    private String storeName;

    /**
     * 店铺地址ID
     */
    private Long addressId;

    /**
     * 地址详情
     */
    private String addressDetail;

    /**
     * 名
     */
    private String firstName;

    /**
     * 姓
     */
    private String lastName;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 电话号码
     */
    private String phoneNumber;

    /**
     * 备注
     */
    private String remark;

    /** 租户号 */
    private Integer tenantId;

    /** 乐观锁 */
    private Integer revision;

    /**
     * 创建人名称
     */
    private String createdName;

    /** 创建人 */
    private Long createdBy;

    /** 创建时间 */
    private Date createdTime;

    /** 更新人 */
    private Long updatedBy;

    /** 更新时间 */
    private Date updatedTime;

    /** 删除版本：默认为0；删除则赋值当前记录主键ID */
    private Long deletedVersion;

    /**
     * 国家
     */
    private String country;
    /**
     * 区域
     */
    private String area;
    /**
     * 城市
     */
    private String city;
    /**
     * 区县
     */
    private String county;

}
